/**
 * Copyright (c) 2011, www.quartzsource.org
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.quartzsource.core

object DirState {
  sealed abstract class FileState(val char: Char)
  case object NEW extends FileState('n')
  case object ADDED extends FileState('a')
  case object MODIFIED extends FileState('m')
  case object REMOVED extends FileState('r')

  def parseState(char: Byte): FileState = char match {
    case 'n' => NEW
    case 'a' => ADDED
    case 'm' => MODIFIED
    case 'r' => REMOVED
    case unknown => throw new QuartzException("Unexpected mode char: #" + unknown)
  }
}
class DirState

